# 将所有的.o文件链接成.elf文件，“-Ttext 0x0”
# 表示程序的运行地址是0x0，由于目前编写的是位置
# 无关码，可以在任一地址运行
# 将elf文件抽取为可在开发板上运行的bin文件
# 将elf文件反汇编保存在dis文件中，调试程序会用
# 添加文件头

#
# Makefile for module.
#
CROSS		?= arm-linux-
NAME		:= buzzer

CC			:=$(CROSS)gcc
LD			:=$(CROSS)ld
OBJCOPY		:=$(CROSS)objcopy
OBJDUMP		:=$(CROSS)objdump
AR			:=$(CROSS)ar

MKHEADER	:=../tools/make_image/mkv210_image

CFLAGS = -nostdlib

OBJS += \
	start.o \
	buzzer.o \
	main.o

$(NAME).bin : $(OBJS)
	@echo [LD] $^
	@$(LD) -Ttext 0x0 -o $(NAME).elf $^
	@echo [OC] Objcopying $@
	@$(OBJCOPY) -O binary $(NAME).elf $(NAME).bin
	@echo [OD] objdumping $@
	@$(OBJDUMP) -D $(NAME).elf > $(NAME)_elf.dis
	@echo make header information for irom booting
	@$(MKHEADER) $(NAME).bin

# 将当前目录下存在的汇编文件及C文件编译成.o文件
%.o : %.S
	@echo [CC] $<
	@$(CC) -o $@ $< -c $(CFLAGS)
%.o : %.c
	@echo [CC] $<
	@$(CC) -o $@ $< -c $(CFLAGS)

clean:
	$(RM) *.o *.elf *.bin *.dis .*.*.sw?
